// TODO: new Object() 和 Object.create()的区别
    // {} 等同于 new Object(), 原型为 Object.prototype
    // Object.create(null) 没有原型
    // Object.create({...}) 创建一个空对象, 将传入的参数作为该空对象的原型

const obj1 = {
    a: 10,
    b: 20,
    sum() {
        return this.a + this.b
    }
}

const obj2 = new Object({
    a: 10,
    b: 20,
    sum() {
        return this.a + this.b
    }
})

const obj21 = new Object(obj1) // obj1 === obj21

const obj3 = Object.create(null)
const obj4 = new Object() // {}

const obj5 = Object.create({
    a: 10,
    b: 20,
    sum() {
        return this.a + this.b
    }
})

const obj6 = Object.create(obj1); // obj6 的原型指向 obj1
obj1.c = 1000;
console.log(obj6.c); // 当 obj1 改变了属性后, obj6 能取到对应的值
